The present invention pertains to methods and systems for providing access to internet servers and applications in a mobile-based client-server system.
In conventional client-server systems, respective xe2x80x9cclient stations,xe2x80x9d (e.g., computer terminals having one or more stored applications), periodically obtain information from a server (e.g., a centralized computer system operating in conjunction with one or more databases), in order to support one or more user applications residing on the client station. Such client-server systems have conventionally been restricted to high speed, hard-wired networksxe2x80x94e.g., coaxial, twisted pair, optical fiber, etc.
More recently, however, client-server system architectures have incorporated xe2x80x9cmobilexe2x80x9d client stations that are not hard-wired to a high speed network, e.g., such as portable (i.e., xe2x80x9claptopxe2x80x9d) computers equipped with modems for connecting to the server via a network connection. Such mobile-based system architectures, however, are usually provided over relatively low speed, high latency networks such as, e.g., a dial-up, circuit-switched telephone network. xe2x80x9cWirelessxe2x80x9d modems and networks are being employed to provide mobile connectivity of client stations to a remote server, albeit at a still slower rate and higher latency than even wire-based telephone networks. In particular, mobile-based client-server systems provided over wireless networks are growing in popularity as they allow for substantially increased client station mobility, without being tied to locations providing wire-based telephone network access.
In order to support software applications residing in such mobile-based client-server system architectures, however, a special mechanism such as a proprietary application programming interface (xe2x80x9cAPIxe2x80x9d) must be used to xe2x80x9ccustomizexe2x80x9d the applications for compatibility with the applicable wireless transmission protocols. In many situations, developers will start with an application that has already been developed for a conventional network, and will rewrite the application using a proprietary API to thereby provide a xe2x80x9cmobile-enabledxe2x80x9d application.
It is this required use of special APIs that highlights the drawback to these prior systems. In particular, every new or existing application must be written (or rewritten) to invoke the APIs in order to provide compatibility for operating in conjunction with, e.g., a selected wireless transmission protocol. Further, these additional features and modifications to the application have to be made on both the client station and server sides of the system architecture. In some cases, this work could involve a significant amount of development effort and expense.
Internet or xe2x80x9cweb-basedxe2x80x9d applications are especially problematic in a mobile-based client-server system, since their use may involve the frequent pulling of information from the server side to a client station, which, e.g., in the case of a wireless communication link, can be relatively expensive to maintain and prone to frequent disconnects or signal fading. In particular, the constant maintenance of a wireless connection while small amounts of data are transferred can be cost prohibitive.
Thus, it is desirable to provide improved methods and system architectures for more efficiently supporting applications used in mobile-based client-server systems and, in particular, for supporting web-based applications for systems such as those employing wireless network connectivity between a remote server and a client station.
The present invention provides a mobile-based client-server system architecture that allows internet-based applications, such as conventional web-based applications, to operate transparentlyxe2x80x94i.e., without requiring specialized APIs.
In a preferred embodiment, two specialized software layers are provided in a mobile-based client server systemxe2x80x94a specialized proxy layer that resides on a client station, and an agent (or xe2x80x9cweb agentxe2x80x9d) layer that resides on the server. More particularly, a conventional web browser residing on a mobile client station is configured to point to the proxy layer, which xe2x80x9ccapturesxe2x80x9d Hyper Text Transfer Protocol (xe2x80x9cHTTPxe2x80x9d) messages that are transmitted to, and received from, the web browser. Within the proxy layer, the HTTP messages received from the web browser are packed into a selected communication transmission format, such as, e.g., a wireless transmission format, and then transmitted to a client station message handler.
In particular, the client station message handler acts as a communications interface for transmitting and receiving messages from and to the client station, wherein the outgoing packed messages are transmitted by the client station message handler to a similar message handler associated with the server. Notably, although the invention is most useful for increasing efficiency over relatively slow, high latency networks, such as, e.g., wireless networks, the communication link between the respective client station and server message handlers may in fact be any network configuration.
From the server message handler, the web agent captures the packed messages and recovers the original, (i.e., xe2x80x9crawxe2x80x9d) HTTP messages. The HTTP messages are then transmitted by the web agent to an appropriate web server for processing. Responsive HTTP messages (e.g., containing HTML, binary, java, or other types of information) transmitted from a respective web server are captured by the web agent, which packs the messages into the selected communication transmission format. The packed messages are then forwarded from the web agent to the server message handler for transmission to the client station.
At the client station, the received messages are forwarded to the proxy layer, which unpacks the individual HTTP messages from the communication transmission format, and forwards the recovered messages to the web browser for processing. In this manner, the respective client station proxy layer and server web agent provide for the transparent exchange of HTTP messages between the web browser and web server, regardless of the type of nature of the communication link between the respective entities.
In accordance with more particular aspects of the invention, the respective proxy and web agent layers may each be linked with respective memory caches and have intelligent filtering capabilities, thereby reducing the need for redundant, unnecessary, or otherwise unwanted messages.
By way of example, information received from the server may be duplicated by the proxy layer for storage in the client station""s memory cache, or otherwise used to update previously stored information, prior to being transmitted to the web browser. Outgoing HTTP messages received from the web browser are then evaluated by the proxy to determine whether information requested therein is already present in the client station memory cache. If so, the responsive information is retrieved from the memory cache and sent to the browser, and the respective message(s) can be dropped without requiring transmission to the server.
In conjunction with this aspect of the invention, the web agent may xe2x80x9cpre-fetchxe2x80x9d information from a respective web server, based on the initial request data parameters, wherein the information is transmitted to the client station and stored in the memory cache until such time as the full request is made. In this manner, network bandwidth utilization may be made more efficient, while reducing transmission latency. Preferably, responsive messages from a web server are filtered (i.e., xe2x80x9cdroppedxe2x80x9d) by the web agent, if they contain information that exceeds a selected threshold quantity or type parameter associated with the recipient client station, e.g., based on byte size or transmission latency limitations.
Thus, it is a general object of the invention to provide a system and method for allowing any application that works under a conventional web browser to operate transparently as a mobile-enabled applicationxe2x80x94i.e., wherein no special development work is required due to the data transmission strictures for particular communication networks.
As will be apparent to those skilled in the art, other and further objects and advantages will appear hereinafter.